#define _CRT_SECURE_NO_WARNINGS 2

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int datatype;

typedef struct ListNode {
	datatype data;
	struct ListNode* next;
	struct ListNode* pre;
}ListNode;

ListNode* Init();
void PushFront(ListNode* phead, datatype val);
void PushBack(ListNode* phead, datatype val);
void Print(ListNode* phead);
void PrintReverse(ListNode* phead);
void PopFront(ListNode* phead);
void PopBack(ListNode* phead);
ListNode* Find(ListNode* phead, datatype val);
void Insert(ListNode* pos, datatype val);